/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Seguridad.Perfil.Controlador;

import Seguridad.Perfil.Vista.Perfil;
import Seguridad.ReporteUsuario.Vista.Usuario;
import java.util.ArrayList;
import sape.Conexion;

/**
 *
 * @author Himer
 */
class UsuarioControlador {
    public Usuario modificarUsuario(Usuario p){        
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx =  session.beginTransaction();
//
//        session.update(p);           
//        tx.commit();
//
//        session.close();                      
        return p;
              
    }      
    
    
//    public EstadoPassword buscarEstadoPass(int idestado){
//        EstadoPassword a = new EstadoPassword();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//
//        Query query = session.createQuery("from EstadoPassword where idestado = :id");
//        query.setInteger("id", idestado);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        if (iter.hasNext()) {    
//            a = (EstadoPassword) iter.next();        
//        }
//
//        tx.commit();
//
//        session.close();
//        return a;
                
//    }    
   
//    public boolean existeCorreo(String correo, int idtipo, int idusuario){
//        boolean existe;
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//
//        Query query = session.createQuery("from Usuario where idtipocorreo = :id and correo = :mail and idusuario<>:iduser");
//        query.setInteger("id", idtipo);
//        query.setString("mail", correo);
//        query.setInteger("iduser", idusuario);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        existe =iter.hasNext();                            
//        tx.commit();
//
//        session.close();
//        return existe;
//       
//    }       
//    
//    public boolean existeCorreo(String correo, int idtipo){
//        boolean existe;
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//
//        Query query = session.createQuery("from Usuario where idtipocorreo = :id and correo = :mail");
//        query.setInteger("id", idtipo);
//        query.setString("mail", correo);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        existe =iter.hasNext();                            
//        tx.commit();
//
//        session.close();
//        return existe;
      
//    }     

//    public boolean existeDNI(String numdoc, int idtipo, int idusuario){
//        boolean existe;
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//
//        Query query = session.createQuery("from Usuario where idtipodoc = :id and documento = :doc and idusuario<>:iduser");
//        query.setInteger("id", idtipo);
//        query.setString("doc", numdoc);
//        query.setInteger("iduser", idusuario);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        existe =iter.hasNext();                            
//        tx.commit();
//
//        session.close();
//        return existe;
//              
//    }      
    
//    public boolean existeDNI(String numdoc, int idtipo){
//        boolean existe;
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//
//        Query query = session.createQuery("from Usuario where idtipodoc = :id and documento = :doc");
//        query.setInteger("id", idtipo);
//        query.setString("doc", numdoc);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        existe =iter.hasNext();                            
//        tx.commit();
//
//        session.close();
//        return existe;
//  
//    }      
             
    public void guardarPassword(/*Password p*/){
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx =  session.beginTransaction();
//        session.save(p);
//        tx.commit();
//
//        session.close();            
       
    }  
    
    public Usuario buscarUsuario(String usr){
        Usuario a = new Usuario();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();                        
//
//        Query query = session.createQuery("from Usuario where nombusr = :nombre");
//        query.setString("nombre", usr);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        if (iter.hasNext()) {    
//            a = (Usuario) iter.next();        
//            Hibernate.initialize(a.getPerfil());
//            Hibernate.initialize(a.getPerfil().getPermisos());
//            Hibernate.initialize(a.getPerfil().getUsuarios());
//            Hibernate.initialize(a.getPerfil().getEstadoPerfil());                   
//            Hibernate.initialize(a.getEstadoUsuario());
//            Hibernate.initialize(a.getAeropuerto());
//            Hibernate.initialize(a.getAeropuerto().getCiudad());
//            Hibernate.initialize(a.getAeropuerto().getCiudad().getPais().getContinente());                
//            Hibernate.initialize(a.getConexion());
//            Hibernate.initialize(a.getTipoCorreo());
//            Hibernate.initialize(a.getTipoDocumento());                
//        }
//
//        tx.commit();
//
//        session.close();
        return a;
       
    }    
  
    public Usuario buscarUsuario(int id){
        Usuario a = new Usuario();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();                        
//
//        Query query = session.createQuery("from Usuario where idusuario = :id");
//        query.setInteger("id", id);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        if (iter.hasNext()) {    
//            a = (Usuario) iter.next();        
//            Hibernate.initialize(a.getPerfil());
//            Hibernate.initialize(a.getPerfil().getPermisos());                
//            Hibernate.initialize(a.getPerfil().getUsuarios());
//            Hibernate.initialize(a.getPerfil().getEstadoPerfil());                
//            Hibernate.initialize(a.getEstadoUsuario());
//            Hibernate.initialize(a.getAeropuerto());
//            Hibernate.initialize(a.getAeropuerto().getCiudad());
//            Hibernate.initialize(a.getAeropuerto().getCiudad().getPais().getContinente());                
//            Hibernate.initialize(a.getConexion());
//            Hibernate.initialize(a.getTipoCorreo());
//            Hibernate.initialize(a.getTipoDocumento());                
//        }
//
//        tx.commit();
//
//        session.close();
        return a;
              
    }      
    
    
//     public Password buscarPassActual(int usr){
//        Password a = new Password();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();                                 
//        Query query = session.createQuery("from Password where idusuario = :usr and idestado = :est");
//        query.setInteger("usr", usr);
//        query.setInteger("est", Constante.ESTADO_PASSWORD_ACTIVO);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        if (iter.hasNext()) {    
//            a = (Password) iter.next();        
//            Hibernate.initialize(a.getEstadoPassword());                               
//        }
//
//        tx.commit();
//
//        session.close();
//        return a;
        
//    }    
    
    
//    public ArrayList<Continente> listarContinente(){
//        ArrayList<Continente> listaContinente = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//                    
//        String q = "select c from Aeropuerto a join a.ciudad d join d.pais p join p.continente c"
//                + " where c.idcontinente in (:idam,:ideu) " 
//                + " group by c.idcontinente order by c.idcontinente";
//        
//        Query query = session.createQuery(q);    
//        query.setInteger("idam", Constante.CONTINENTE_SUDAMERICA);
//        query.setInteger("ideu", Constante.CONTINENTE_EUROPA);        
//        List lista = query.list();
//        Iterator iter = lista.iterator(); 
//        while (iter.hasNext()) {    
//            Continente a = (Continente) iter.next();
//            listaContinente.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaContinente;
//    }      
//            
//   
//    public ArrayList<Pais> listarPais(int idcont){
//        ArrayList<Pais> listaPais = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        
//        String q = "select p from Aeropuerto a join a.ciudad d join d.pais p join p.continente c"
//                + " where c.idcontinente in (:idam,:ideu) and c.idcontinente = :id"
//                + " group by p.idpais order by p.idpais";        
//        
//        Query query = session.createQuery(q);
//        query.setInteger("idam", Constante.CONTINENTE_SUDAMERICA);
//        query.setInteger("ideu", Constante.CONTINENTE_EUROPA);        
//        query.setInteger("id", idcont);
//        List lista = query.list();
//        Iterator iter = lista.iterator();        
//        while (iter.hasNext()) {    
//            Pais a = (Pais) iter.next();
//            Hibernate.initialize(a.getContinente());
//            listaPais.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaPais;
//    }       
//    
//    public ArrayList<Ciudad> listarCiudad(int idpa){
//        ArrayList<Ciudad> listaCiudad = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//
//        String q = "select d from Aeropuerto a join a.ciudad d join d.pais p join p.continente c"
//                + " where c.idcontinente in (:idam,:ideu) and p.idpais = :id "
//                + " group by d.idciudad order by d.idciudad";         
//        
//        Query query = session.createQuery(q); 
//        query.setInteger("idam", Constante.CONTINENTE_SUDAMERICA);
//        query.setInteger("ideu", Constante.CONTINENTE_EUROPA);               
//        query.setInteger("id", idpa);
//        List lista = query.list();        
//        Iterator iter = lista.iterator(); 
//        while (iter.hasNext()) {    
//            Ciudad a = (Ciudad) iter.next();
//            Hibernate.initialize(a.getPais());
//            Hibernate.initialize(a.getPais().getContinente());
//            listaCiudad.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaCiudad;
//    }    
//    
//    public ArrayList<Aeropuerto> listarAeropuerto(int idciu){
//        ArrayList<Aeropuerto> listaAeropuerto = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        
//        String q = "select a from Aeropuerto a join a.ciudad d join d.pais p join p.continente c"
//                + " where c.idcontinente in (:idam,:ideu) and d.idciudad = :id "
//                + " group by a.idaeropuerto order by a.idaeropuerto";          
//        
//        Query query = session.createQuery(q);   
//        query.setInteger("idam", Constante.CONTINENTE_SUDAMERICA);
//        query.setInteger("ideu", Constante.CONTINENTE_EUROPA);          
//        query.setInteger("id", idciu);
//        List lista = query.list();        
//        Iterator iter = lista.iterator(); 
//        while (iter.hasNext()) {    
//            Aeropuerto a = (Aeropuerto) iter.next();
//            Hibernate.initialize(a.getCiudad());
//            Hibernate.initialize(a.getCiudad().getPais());
//            Hibernate.initialize(a.getCiudad().getPais().getContinente());
//            listaAeropuerto.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaAeropuerto;
//    }    
//   
//    public ArrayList<TipoDocumento> listarTipoDoc(){
//        ArrayList<TipoDocumento> listaTipoDoc = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        
//        List lista = session.createQuery("from TipoDocumento order by idtipodoc").list();
//        Iterator iter = lista.iterator();
//        while (iter.hasNext()) {    
//            TipoDocumento a = (TipoDocumento) iter.next();
//            listaTipoDoc.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaTipoDoc;
//    }      
// 
//    public ArrayList<TipoCorreo> listarTipoCorreo(){
//        ArrayList<TipoCorreo> listaCorreo = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        
//        List lista = session.createQuery("from TipoCorreo order by idtipocorreo").list();
//        Iterator iter = lista.iterator();
//        while (iter.hasNext()) {    
//            TipoCorreo a = (TipoCorreo) iter.next();
//            listaCorreo.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaCorreo;
//    }     
    
//    public ArrayList<EstadoUsuario> listarEstado(){
//        ArrayList<EstadoUsuario> listaEstado = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        
//        List lista = session.createQuery("from EstadoUsuario order by idestado").list();
//        Iterator iter = lista.iterator();
//        while (iter.hasNext()) {    
//            EstadoUsuario a = (EstadoUsuario) iter.next();        
//            listaEstado.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaEstado;

//    }        

    public ArrayList<Perfil> listarPerfil(){
//        ArrayList<Perfil> listaPerfil = new ArrayList<>();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        
//        List lista = session.createQuery("from Perfil order by idperfil").list();
//        Iterator iter = lista.iterator();
//        while (iter.hasNext()) {    
//            Perfil a = (Perfil) iter.next();    
//            Hibernate.initialize(a.getPermisos());            
//            Hibernate.initialize(a.getUsuarios());            
//            Hibernate.initialize(a.getEstadoPerfil());   
//            listaPerfil.add(a);
//        }
//        
//        tx.commit();
//        session.close();
//
//        return listaPerfil;
        return null;// cambiar despues
    }      
    
    public Perfil buscarPerfil(int idperfil){
//        Perfil a = new Perfil();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//
//        Query query = session.createQuery("from Perfil where idperfil = :id ");
//        query.setInteger("id", idperfil);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        if (iter.hasNext()) {    
//            a = (Perfil) iter.next();
//            Hibernate.initialize(a.getPermisos());            
//            Hibernate.initialize(a.getUsuarios());            
//            Hibernate.initialize(a.getEstadoPerfil());              
//        }        
//        tx.commit();

//        session.close();
//        return a;
        return null;// cambiar despues
    } 
    
//    public EstadoUsuario buscarEstado(int idestado){
//        EstadoUsuario a = new EstadoUsuario();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        Query query = session.createQuery("from EstadoUsuario where idestado = :id");
//        query.setInteger("id", idestado);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        if (iter.hasNext()) {    
//            a = (EstadoUsuario) iter.next();        
//        }
//
//        tx.commit();
//        session.close();
//        return a;
//                     
//    } 

    
    
    public Conexion buscarEstadoConexion(int idconexion){
//        Conexion a = new Conexion();
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        Query query = session.createQuery("from Conexion where idconexion = :id");
//        query.setInteger("id", idconexion);
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        if (iter.hasNext()) {    
//            a = (Conexion) iter.next();        
//        }
//
//        tx.commit();
//        session.close();
//        return a;
        return null;// cambiar despues              
    }     
    
    public ArrayList<Usuario> listarUsuario(/*Aeropuerto aer, String nombre, EstadoUsuario est*/)
    {
//        ArrayList<Usuario> listaResultados = new ArrayList<>();       
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        Query query = session.createQuery("from Usuario where (upper(nombre) like upper('%'||:nomb||'%') or "
//                + "upper(appaterno) like upper('%'||:app||'%')) and idaeropuerto = :aer and idestado = :est order by idusuario");            
//        query.setString("nomb", nombre);
//        query.setString("app", nombre);
//        query.setInteger("aer", aer.getIdaeropuerto());
//        query.setInteger("est", est.getIdestado());
//        List lista = query.list();
//        Iterator iter = lista.iterator();
//        while (iter.hasNext()) {    
//            Usuario p = (Usuario) iter.next();
//            Hibernate.initialize(p.getPerfil());
//            Hibernate.initialize(p.getPerfil().getPermisos());
//            Hibernate.initialize(p.getPerfil().getUsuarios());
//            Hibernate.initialize(p.getPerfil().getEstadoPerfil());                
//            Hibernate.initialize(p.getEstadoUsuario());
//            Hibernate.initialize(p.getAeropuerto().getCiudad());
//            Hibernate.initialize(p.getAeropuerto().getCiudad().getPais());
//            Hibernate.initialize(p.getAeropuerto().getCiudad().getPais().getContinente());
//            Hibernate.initialize(p.getConexion());
//            Hibernate.initialize(p.getTipoCorreo());
//            Hibernate.initialize(p.getTipoDocumento());
//            listaResultados.add(p);
//        }        
//        tx.commit();
//
//        session.close();
//        return listaResultados;
        return null;// cambiar despues                
    }     
    
//    public ArrayList<Usuario> listarUsuario()
//    {
//        ArrayList<Usuario> listaResultados = new ArrayList<>();       
//        Session session = HibernateUtil.getSessionFactory().openSession();
//        Transaction tx = session.beginTransaction();
//        List lista = session.createQuery("from Usuario order by idusuario").list();        
//        Iterator iter = lista.iterator();
//        while (iter.hasNext()) {    
//            Usuario p = (Usuario) iter.next();
//            Hibernate.initialize(p.getPerfil());
//            Hibernate.initialize(p.getPerfil().getPermisos());
//            Hibernate.initialize(p.getPerfil().getUsuarios());
//            Hibernate.initialize(p.getPerfil().getEstadoPerfil());
//            Hibernate.initialize(p.getEstadoUsuario());
//            Hibernate.initialize(p.getAeropuerto());
//            Hibernate.initialize(p.getAeropuerto().getCiudad().getPais());
//            Hibernate.initialize(p.getAeropuerto().getCiudad().getPais().getContinente());
//            Hibernate.initialize(p.getConexion());
//            Hibernate.initialize(p.getTipoCorreo());
//            Hibernate.initialize(p.getTipoDocumento());
//            listaResultados.add(p);
//        }        
//        tx.commit();
//
//        session.close();
//        return listaResultados;
//            

//    }    
    
    
}
